﻿using Abp.Application.Services.Dto;
using SingleUserMall.Common;
using SingleUserMall.Mall.Form;
using SingleUserMall.Mall.VO;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SingleUserMall.Mall
{
    /// <summary>
    /// 商城
    /// </summary>
    [Description("商城")]
    public interface IMallAppService : IAppService
    {
        /// <summary>
        /// 商城首页数据
        /// </summary>
        /// <returns></returns>
        Task<HomeVO> GetHomeAsync(HasStoreForm form);
        /// <summary>
        /// 搜索商品
        /// </summary>
        /// <param name="form"></param>
        /// <returns></returns>
        Task<PagedResultDto<ItemMiniVO>> SearchItemsAsync(ItemSearchForm form);
        /// <summary>
        /// 根据店铺Id获取所有的推荐分类
        /// </summary>
        /// <param name="form"></param>
        /// <returns></returns>
        Task<ListResultDto<RecommendCategoryMiniVO>> GetRecommendCategoriesByStoreId(SingleId<long> form);
        /// <summary>
        /// 根据推荐类型获取所有商品分页
        /// </summary>
        /// <param name="form"></param>
        /// <returns></returns>
        Task<PagedResultDto<ItemMiniVO>> GetItemsByRecommendId(RecommendForm form);
        /// <summary>
        /// 获取二维码背景图片
        /// </summary>
        /// <param name="form"></param>
        /// <returns></returns>
        Task<ListResultDto<BannerMiniVO>> GetEWM();
        /// <summary>
        /// 根据用户获得完成任务情况
        /// </summary>
        /// <param name="form"></param>
        /// <returns></returns>
        Task<ListResultDto<ActiveAPPVO>> GetActivesByUser();
        /// <summary>
        /// 用户完成任务领取体验金
        /// </summary>
        /// <param name="form"></param>
        /// <returns></returns>
        Task<ListResultDto<ActiveAPPVO>> FinishActive(SingleId<long> form);
    }
}
